
/**
 * AppleIIGo
 * Device class
 * (C) 2008 by Marc S. Ressl (mressl@umich.edu)
 * Released under the GPL
 */

#include "Motherboard.h"

#ifndef DEVICE_H
#define DEVICE_H

class Device {
public:
	Device(class Motherboard * motherboard, char * deviceName);
	virtual ~Device();

	char * getDeviceName();
	
	virtual void onDevicesConnected();
	virtual void onMemoryRequested();
	virtual void onMemoryAllocated();
	virtual void onResetAsserted(bool isRestart);
	virtual void onResetCleared();
	virtual void onFrameStart();
	virtual void onFrameEnd();
	
protected:
	class Motherboard * motherboard;
	char * deviceName;
};

#endif
